package com.goodfox.web.generic.function.service;

import java.util.List;
import java.util.Set;

import com.goodfox.web.generic.function.entity.Function;
import com.goodfox.web.generic.organization.entity.Organization;
import com.goodfox.web.generic.role.entity.Role;

public interface FunctionService {
	
	/**
	 * 查询功能集合（根据角色适用范围）
	 * @param roleScope
	 * @return
	 */
	Set<Function> queryFunctionSetByScope(String roleScope);

	/**
	 * 查询功能列表（根据角色适用范围）
	 * @param roleScope
	 * @return
	 */
	List<Function> queryFunctionListByScope(String roleScope,String funState);
	
	/**
	 * 获取功能
	 * @param funId
	 * @return
	 */
	Function getFunction(String funId);
	
	/**
	 * 新增功能
	 * @param map
	 */
	void addFunction(Function entity,String loginLogId);
	
	/**
	 * 修改功能
	 * @param map
	 */
	void modifyFunction(Function oldEny,Function newEny,String loginLogId);
	
	/**
	 * 删除功能
	 * @param map
	 */
	void removeFunction(Function entity,String loginLogId);

	/**
	 * 查询功能集合（根据角色Id）
	 * @param roleId
	 * @return
	 */
	Set<Function> queryFunctionSetByRoleId(String roleId);

	/**
	 * 查询菜单功能集合（根据角色Id）
	 * @param roleId
	 * @return
	 */
	Set<Function> queryMenuFunSetByRoleId(String roleId);
	
	/**
	 * 重新填充功能集合
	 * @param funSet
	 * @return
	 */
	Set<Function> orderFillingFunSet(Set<Function> funSet);

	/**
	 * 重新填充功能集合
	 * @param funList
	 * @return
	 */
	Set<Function> orderFillingFunSet(List<Function> funList);
}
